package cn.csc.module.order.controller.admin.logistics.vo;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.math.BigInteger;

/**
* 订单物流 Base VO，提供给添加、修改、详细的子 VO 使用
* 如果子 VO 存在差异的字段，请不要添加到这里，影响 Swagger 文档生成
*/
@Data
public class OrderLogisticsBaseVO {

    @ApiModelProperty(value = "订单编码", required = true)
    @NotNull(message = "订单编码不能为空")
    private BigInteger orderId;

    @ApiModelProperty(value = "发货快递单号")
    private String expressNo;

    @ApiModelProperty(value = "收货人姓名", required = true)
    @NotNull(message = "收货人姓名不能为空")
    private String consigneeRealname;

    @ApiModelProperty(value = "联系电话", required = true)
    @NotNull(message = "联系电话不能为空")
    private String consigneePhone;

    @ApiModelProperty(value = "备用联系电话")
    private String consigneePhoneSpare;

    @ApiModelProperty(value = "收货地址", required = true)
    @NotNull(message = "收货地址不能为空")
    private String consigneeAddress;

    @ApiModelProperty(value = "邮政编码", required = true)
    @NotNull(message = "邮政编码不能为空")
    private Integer consigneeZip;

    @ApiModelProperty(value = "物流方式")
    private String logisticsType;

    @ApiModelProperty(value = "物流发货运费", required = true)
    @NotNull(message = "物流发货运费不能为空")
    private BigDecimal logisticsFee;

    @ApiModelProperty(value = "物流状态", required = true)
    @NotNull(message = "物流状态不能为空")
    private Integer orderLogisticsStatus;

    @ApiModelProperty(value = "物流结算状态", required = true)
    @NotNull(message = "物流结算状态不能为空")
    private Integer logisticsSettlementStatus;

    @ApiModelProperty(value = "物流最后状态描述")
    private String logisticsResultLast;

    @ApiModelProperty(value = "物流描述")
    private String logisticsResult;

    @ApiModelProperty(value = "发货时间", required = true)
    @NotNull(message = "发货时间不能为空")
    private Integer logisticsCreateTime;

    @ApiModelProperty(value = "物流更新时间", required = true)
    @NotNull(message = "物流更新时间不能为空")
    private Integer logisticsUpdateTime;

    @ApiModelProperty(value = "物流结算时间", required = true)
    @NotNull(message = "物流结算时间不能为空")
    private Integer logisticsSettlementTime;

}
